以下操作均在gitbash里完成。
在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。
git config —global user.name “Test”
git config —global user.email Test@test.com
初始操作
生成密钥
ssh-keygen -t rsa -C “your_email@example.com”
这里会有设置密码的地方,指的是访问私钥的密码。
公钥和私钥一般都会存放在C盘对应的用户名下
生成了公钥后记得把公钥放在github的SSH设置里。git init 创建仓库
首先在E:创建一个gittest文件夹,即我们的项目
cd E:
mkdir gittest
cd gittest (!记住一定要进入这个文件)
然后将当前目录进行初始化。
git initgit add 增加文件到暂存区
首先在目录下创建一个文件a.txt
内容为12345
这个时候操作git status, 会提示Untracked files, 需要将a.txt加入暂存区 , 因此
git add a.txt
完成将a.txt加入到暂存区的操作。
这个时候操作git status, 会提示changes to be commited, 需要将a.txt加入到版本库
注: git add . 可以将所有修改的文件加入到暂存区git commit 将暂存区的文件到版本库
git commit -m “first version”
此时操作git status, 提示working tree cleangit branch 查看当前所属分支,默认为master
git branch -a 查看所有分支,包含远程分支git checkout 切换分支
git checkout -b newbranch 创建并切换到newbranch
git checkout newbranch 如果有newbranch这个分支,就切换
远程相关操作
将当前项目推送到远程 假设本地为用户a;
在github新建gittest的repository, 命名为gittest
首先添加远程仓库:
git remote add origin git@github.com:DavidNeson/gittest.git
origin为自己定义的远程仓库的名字
然后将本地的项目添加到远程仓库:
git push -u origin master:master
前一个master代表本地的master分支,后一个master代表远程的master分支git clone 如果已有项目, 将项目复制到本地, 假设此时是用户b
cd D:
git clone git@github.com:DavidNeson/gittest.gitgit pull git push
用户b增加了文件b.txt
内容为6789
然后进行add和commit操作
然后将当前分支推送到远程:
首先需要从远程下载最新主分支文件并且与本地文件合并,git pull能够实现下载加合并
git pull origin master
然后将当前分支推送到远程主分支
git push origin mastergit fetch git merge
当用户b操作时,用户a增加了c.txt
内容为0000
然后进行add和commit操作
然后此时用户b选择将当前分支推送到远程:
首先将远程分支下载下来 (实际上git pull = git fetch + git merge):
git fetch origin master:tmp //在本地新建一个tmp分支,并将远程origin仓库的master分支代码下载到本地tmp分支
git diff tmp //来比较本地代码与刚刚从远程下载下来的代码的区别
git merge tmp //合并temp分支到本地的master分支, 这一步需要写注释文档,可以跳过
git branch -d tmp //如果不想保留temp分支 可以用这步删除
最后仍然是调用git push将当前分支上传到远程分支:
git push origin master
分支上进行操作
git 创建远程新分支 (a用户)
git checkout -b test // 创建本地test分支
git push —set-upstream origin test //把本地test分支推送到远程, 并在远程分支设立test分支在当前分支下增加新文件d.txt
内容为dddd- git add .
- git commit -m “add d.txt”
- git pull origin test
- git push origin test
此时查看会发现远程test分支有d.txt文件,而master没有
git diff master